In networked systems there is a need to detect failure of links between network elements (e.g., end machines, routers, switches, other forwarding elements, etc.). For the purposes of the present application a link will be understood to be any means by which information can be passed between network elements. Numerous techniques and protocols for verifying the functionality of network links exist. Some of these techniques and protocols involve network entities repeatedly sending messages to each other across connections in order to demonstrate their vitality. One such protocol is bidirectional forwarding detection (BFD). BFD is a network protocol that provides low-overhead failure detection of link failures even on media that does not support failure detection of any kind. BFD sessions are established between two endpoints over a particular link.
A drawback of some of these techniques and protocols is the lack of a discovery mechanism for establishing the failure-detection session. This lack of a discovery mechanism causes an administrator to explicitly configure a failure-detection session between endpoints. Such configuration is time-intensive and error-prone. As the number of devices and links grows, manual configuration of failure-detection sessions quickly becomes unmanageable. For example, for large networks or datacenters experiencing frequent link failures and additions and removals of network elements, constant updates to failure-detection sessions would be required. Such constant updates monopolize administrators' time and introduce significant numbers of errors. Thus, there is a need to manage failure-detection sessions (e.g., BFD sessions) without having the user configure each failure-detection session as it is established or removed (torn down).